Typical microprocessors have registers, arithmetic logic units, memory, input/output circuits and other similar components which are hard wired together. The techniques for fabrication of such microprocessors is well established and provides a cheap and powerful base for modern computers. In order to add three numbers together from memory and return the result to memory, the traditional method is as follows:    1. Memory→Reg A (Read from memory and output to register A)    2. Memory→Reg B (Read from memory and output to register B)    3. Reg A+Reg B→Reg C (Add registers A,B and output to register C)    4. Reg C→Reg A (Read register C and output to register A)    5. Memory→Reg B (Read from memory and output to register B)    6. Reg A+Reg B→Reg C (Add registers A,B and output to register C)    7. Reg C→Memory (Read register C and output to memory)
From the above it is clear that such a simple operation would take at least 7 clock cycles to be completed. In addition, the present microprocessor architectures are slow, because programmers are forced to use an instruction set provided by the microprocessor manufacturer. Thus the programmer must construct their own software to use these set of predefined instructions. This example is grossly simplified as basic microprocessors do not take one cycle to process an instruction. Typically there would be a clock cycle for each of fetching the instruction, loading an opcode into the instruction register and decoding the instruction and processing the opcode per se.